Data Copy_Kernel Interface

Data Copy
<asm/uaccess.h>
<linux/uaccess.h>
1. 사용자 공간과 커널 공간 사이에 데이터 복사
unsigned long copy_from_user(void* to, const void* from, unsigned long n);
unsigned long copy_to_user(void* to, const void* from, unsigned long n);
put_user(data, ptr); //macro
get_user(ptr); // macro
ptr이 가리키는 사용자 공간에 data를 전달(put)하거나 가져온다.(get)
ptr 타입에 따라서 복사할 데이터의 크기를 인식

커널 공간에서 사용자 공간의 메모리를 읽고 쓰는데 접근할 수 있는지를 검사하는 동작을 포함한다.
2. 메모리 값 설정
void* memset(void* s, char c, size_t count); // s c count